<?php

include_once( "ConexionBD.php" );

class Servicios{
	
	// -----------------------------------------------------------------------
	// Atributos
	// -----------------------------------------------------------------------
	private $conexion;
		
		
	// -----------------------------------------------------------------------
	// Constructor de la clase
	// -----------------------------------------------------------------------
	public function __construct( )	{
		// Conexión con el servidor de base de datos
		$this->conexion = new ConexionBD();
	}
	
	
	public function ValidarConsulta( $usuario, $clave ){
		$consulta = "SELECT  USU_CODIGO, USU_NOMBRES, PER_CODIGO FROM USUARIO 
			 						WHERE  USU_NOMBRELOGIN = '" . mysql_real_escape_string($usuario)."' AND USU_CONTRASENA = '" . mysql_real_escape_string($clave). "'";
		$resultado = $this->conexion->ejecutarConsulta( $consulta );
		return $resultado;
	}
	
	public function agregarInvestigacion( Investigacion $investigacion ){
		$suam_codigo = $investigacion->getSuamCodigo();
		$inv_principal= $investigacion->getInvPrincipal();
		$inv_tema     = $investigacion->getInvTema();
		$inv_subtema = $investigacion->getInvSubTema();
		$inv_palabraclave = $investigacion->getInvPalabraClave();
		$inv_descripcion  = $investigacion->getInvDescripcion();
		$inv_fechainicio = $investigacion->getInvFechaInicio();
		$inv_fechafinal= $investigacion->getInvFechaFinal();
		//$inv_par=$investigacion->getParticpantes(); se elimino de la consulta tambien
		
		$consulta = "INSERT INTO investigacion ( SUAM_CODIGO, INV_PRINCIPAL, INV_TEMA, INV_SUBTEMA, INV_PALABRACLAVE, INV_DESCRIPCION, INV_FECHAINICIO, INV_FECHAFINAL) 
					 						VALUES 							 ( '$suam_codigo', '$inv_principal', '$inv_tema', '$inv_subtema', '$inv_palabraclave', '$inv_descripcion', '$inv_fechainicio', '$inv_fechafinal')";
		$resultado = $this->conexion->ejecutarConsulta( $consulta );
		return $resultado;	
	}

	/**
	 * Funcion que me permite listar las investigaciones que tiene a cargo un investigador
	 * @param  [int] $idInvestigador [Variable que almacena el id del investigador logueado]
	 */
	public function grillaInvestigaciones($idInvestigador){

		$sqlGrilla = "SELECT  INV_CODIGO AS ID, SUAM_CODIGO AS SUBAMBIENTE, INV_PRINCIPAL AS INVESTIGADOR, INV_TEMA AS TEMA, INV_SUBTEMA AS SUBTEMA, INV_PALABRACLAVE AS PALABRA, INV_DESCRIPCION, DATE_FORMAT(INV_FECHAINICIO,'%d/%m/%Y') AS INICIO, DATE_FORMAT(INV_FECHAFINAL,'%d/%m/%Y') AS FIN
										FROM  INVESTIGACION 
									 WHERE  INV_PRINCIPAL = '".$idInvestigador."'";
		$resGrilla = $this->conexion->ejecutarConsulta( $sqlGrilla );
		return $resGrilla;
	}


	/**
	 * Funcion que me permite listar los usuarios que hacen parte de una investigacion
	 * @param  [int] $idInvestigacion [Variable que almacena el id de la investigacion]
	 */
	public function listarUsuarioInves($idInvestigacion, $investigador){
		$sql = "SELECT  U.USU_CODIGO, U.USU_TIPODOCUMENTO, U.USU_NUMERODOCUMENTO, U.USU_NOMBRES, USU_APELLIDOS
						  FROM  USUARIO AS U
						  			INNER JOIN GRUPO AS G ON(U.USU_CODIGO = G.USU_CODIGO)
						 WHERE  G.INV_CODIGO = '$idInvestigacion' AND U.USU_CODIGO <> '$investigador' ";
		$res = $this->conexion->ejecutarConsulta( $sql );
		return $res;
	}

	/**
	 * Funcion que permite listar todos los usuarios excepto los que pertenecen a la investigacion enviada
	 * @param  [int] $idInvestigacion [Variable que almacena el id de la investigacion]
	 */
	public function usuariosNoInvestigacion($idInvestigacion){
		$todos = "(";
		$conta = 1;
		$i = 1;

		$sql1  = "SELECT  USU_CODIGO 
					 		  FROM  GRUPO 
							 WHERE  INV_CODIGO = '$idInvestigacion'";
		$res1  = $this->conexion->ejecutarConsulta( $sql1 );
		$total = mysql_num_rows($res1);
		
		while ($row1 = mysql_fetch_array($res1)) {
			$todos .= "'".$row1['USU_CODIGO']."'";

			if($conta < $total)
				$todos .= ', ';

			$conta++;
		}

		$todos .= ")";

		if ($total > 0) {
			$where = ' AND U.USU_CODIGO NOT IN '.$todos;
		}


		$sql2 = "SELECT  U.USU_CODIGO, U.USU_TIPODOCUMENTO, U.USU_NUMERODOCUMENTO, U.USU_NOMBRES, USU_APELLIDOS
							 FROM  USUARIO AS U
							WHERE  1 = 1 $where";
		$res2 = $this->conexion->ejecutarConsulta( $sql2 );
		return $res2;
	}


	/**
	 * Funcion que permite agregar un usuario a una investigacion
	 * @param  [int] $invest  [Variable que almacena el id de la investigacion]
	 * @param  [int] $usuario [Variable que almacena el id del usuario participante]
	 */
	public function agregarPartiInves($invest, $usuario){
		$sql = "INSERT INTO GRUPO(INV_CODIGO, USU_CODIGO)
								 VALUES      ('$invest', '$usuario')";
		$res = $this->conexion->ejecutarConsulta( $sql );
		return "Se agrego el usuario como participante de la investigacion";
	}


	/**
	 * Funcion que permite eliminar un usuario a una investigacion
	 * @param  [int] $invest  [Variable que almacena el id de la investigacion]
	 * @param  [int] $usuario [Variable que almacena el id del usuario participante]
	 */
	public function eliminarPartiInves($invest, $usuario){
		$sql = "DELETE FROM GRUPO
								 WHERE  INV_CODIGO = '$invest' AND USU_CODIGO = '$usuario'";
		$res = $this->conexion->ejecutarConsulta( $sql );
		return "Se elimino el usuario como participante de la investigacion";
	}


	/**
	 * Funcion que permite eliminar una investigacion
	 * @param  [int] $invest  [Variable que almacena el id de la investigacion]
	 */
	public function eliminarInves($invest){
		$sql1 = "SELECT  * 
							 FROM  GRUPO 
							WHERE  INV_CODIGO = '$invest' ";
		$res1 = $this->conexion->ejecutarConsulta( $sql1 );
		$con1 = mysql_num_rows($res1);

		if($con1 > 0){
			return '0**Error al eliminar la investigacion. Tiene usuarios participantes ligados a esta.';
		}else{
			$sql2 = "DELETE FROM INVESTIGACION
									 	 WHERE  INV_CODIGO = '$invest'";
			$res = $this->conexion->ejecutarConsulta( $sql2 );
			return "1**Se elimino la investigacion";
		}
	}


	/**
	 * Funcion que devuelve los datos de una investigacion
	 * @param  [int] $invest [Variable que almacena el id de la investigacion]
	 */
	public function datosInvestigacion($invest){
		$sql = "SELECT  S.AMB_ID, I.SUAM_CODIGO, I.INV_TEMA, I.INV_SUBTEMA, I.INV_PALABRACLAVE, I.INV_DESCRIPCION, I.INV_FECHAINICIO, I.INV_FECHAFINAL
							FROM  INVESTIGACION AS I
									INNER JOIN SUBAMBIENTE AS S ON(I.SUAM_CODIGO = S.SUAM_CODIGO)
						 WHERE  INV_CODIGO = '$invest' ";
		$res = $this->conexion->ejecutarConsulta( $sql );
		return $res;
	}


	/**
	 * Funcion que devuelve todos los subambietes para las investigaciones
	 */
	public function subambiente($ambiente){
		if($ambiente != '')
			$where = " WHERE AMB_ID = '$ambiente' ";
		else
			$where = "";
		
		$sql = "SELECT SUAM_CODIGO, SUAM_DESCRIPCION FROM SUBAMBIENTE $where";
		$res = $this->conexion->ejecutarConsulta( $sql );
		return $res;
	}

	/**
	 * Funcion que carga los ambientes
	 */
	public function ambiente(){
		$sql = "SELECT AMB_ID, AMB_NOMBRE FROM AMBIENTE";
		$res = $this->conexion->ejecutarConsulta( $sql );
		return $res;
	}

	/**
	 * Funcion que modifica los datos de la investigacion
	*/
	public function modificarInv($invest, $amb, $tema, $subtema, $palabra, $descripcion, $fechIni, $fechFin){
		$sql = "UPDATE  INVESTIGACION
							 SET  SUAM_CODIGO = '$amb', INV_TEMA = '$tema', INV_SUBTEMA = '$subtema', 
							 			INV_PALABRACLAVE = '$palabra', INV_DESCRIPCION = '$descripcion', INV_FECHAINICIO = '$fechIni', INV_FECHAFINAL = '$fechFin'
						 WHERE  INV_CODIGO = '$invest' ";
		$res = $this->conexion->ejecutarConsulta( $sql );
		return 'Se modificaron los datos de la Investigacion';
	}

}
?>
